package com.grm.direct;

import java.io.IOException;

import com.grm.util.RabbitMqUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.MessageProperties;

public class Provider {

	public static void main(String[] args) {
		sendMessage();
	}
	
	public static void sendMessage() {
		try {
			//建立连接
			Connection connection = RabbitMqUtils.getConnection();
			
			//建立通道
			Channel channel = connection.createChannel();
			
			/*
			 * desc: 绑定消息队列
			 * 
			 * queue 需要在哪个消息队列中发送消息
			 * durable 是否需要持久化
			 * exclusive 是否独占
			 * autoDelete 是否自动删除
			 * arguments 额外参数
			 */
			channel.queueDeclare("hello", true, false, false, null);
			
			/*
			 * desc: 发送消息
			 * 
			 * exchange 交换机名称
			 * routingKey 发往消息的队列名称
			 * props 传递消息的额外设置 eg：MessageProperties.PERSISTENT_TEXT_PLAIN 消息持久化  前提是队列持久化
			 * body 消息的具体内容  字节类型
			 */
			channel.basicPublish("", "hello", MessageProperties.PERSISTENT_TEXT_PLAIN, "hello rabbitmq".getBytes());
			
			RabbitMqUtils.close(channel, connection);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
